import argparse
import datetime
import glob
import numpy as np
import os
import re
import time
import sentinelsat
import zipfile
import time
import pdb
import pandas
from sentinelsat import SentinelAPI, read_geojson, geojson_to_wkt
from pandas import DataFrame
import pandas as pd
import hashlib


# checkwhichURL_not_done接受两个参数，第一个参数是通过上一个函数获得
# 的影像文件名
# 第二个参数是包含ur和mdf信息的csv文件，
# 之前第一个python代码就是获得了这两个有效信息，
# 使用md5_hash = hashlib.md5()进行计算文件的md5值，
# 然后设置要对比的链接下载文件csv中是否有该md5信息，
# 如果有则将dataframe的flag例置为1，
# 最后打印出来的url文件就是未下载完的哨兵影像链接，
# 继续按照第二和第三部分的说明进行下载即可。


def checkwhichURL_not_done(filepathlist, urllist):
    not_download_url = []  # 最后未被下载的url
    df = urls_list_df.copy()
    for filepath in filepathlist:
        md5_hash = hashlib.md5()
        with open(filepath, "rb") as file:
            # Read and update hash in chunks of 4K
            for byte_block in iter(lambda: file.read(40960), b""):
                md5_hash.update(byte_block)
                md5 = str.upper(md5_hash.hexdigest())
                # print(".................")
                # print(md5)
                mask = (df['md5'] == md5)
                df.loc[mask, 'flag'] = 1
                df = df.copy()
                df = df.fillna(0).copy()
    # 最后找到所有那些flag=0.0的
    mask = (df['flag'] == "0.0")
    df_extra = df.loc[mask]
    df_extra = df.copy()
    print(df_extra['url'])
    pass


if __name__ == "__main__":
    strPath = r"D:\test_MODIS"
    # tmp_filelist = printPath(1, r"D:\test_MODIS")
    # print(tmp_filelist)
    csvfilepath = "E:\\刘勋\\坐标.csv"
    urls_list_df = pd.read_csv(csvfilepath)
    # print(urls_list_df)
    # checkwhichURL_not_done(tmp_filelist, urls_list_df)
    pass
